package com.stylefeng.guns.modular.system.model;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 拜访记录
 * </p>
 *
 * @author yinjc123
 * @since 2018-04-14
 */
@TableName("crm_visit")
@Data
public class Visit extends Model<Visit> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 企业名称
     */
    @TableField("customer_company_id")
    @NotNull(message = "企业名称不能为空")
    private Integer customerCompanyId;

    @TableField("visit_date")
    @NotNull(message = "拜访日不能为空")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date visitDate;

    /**
     * 开始时间
     */
    @TableField("begin_time")
    @NotNull(message = "开始时间不能为空")
    private String beginTime;
    /**
     * 结束时间
     */
    @TableField("end_time")
    @NotNull(message = "结束时间不能为空")
    private String endTime;
    /**
     * 地点
     */
    private String place;
    /**
     * 形式
     */
    private String form;
    /**
     * 乙方人员
     */
    @TableField("visitor_id")
    private Integer visitorId;

    @TableField("visitor_name")
    private String visitorName;

    /**
     * 随访人员
     */
    private String entourage;

    /**
     * 拜访目的
     */

    private String target;
    /**
     * 拜访对象
     */
    @TableField("target_person")
    private String targetPerson;
    /**
     * 拜访纪要
     */

    private String summary;
    /**
     * 下一步措施
     */
    @TableField("next_step")

    private String nextStep;
    /**
     * 主要机会和存在问题
     */
    @TableField("challenges_and_opportunities")
    private String challengesAndOpportunities;
    /**
     * 产品反馈
     */
    @TableField("feedback")
    private String feedback;
    /**
     * 创建者
     */
    @TableField("creator_name")
    private String creatorName;

    /**
     * 创建者id
     */
    @TableField("creator_id")
    @Null
    private Integer creatorId;

    /**
     * 逻辑删除
     */
    @TableField("delete_flag")
    @TableLogic
    private Integer deleteFlag;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
